Multi-language execution method

ABSTRACT

A data processing representation is expressed in the form of code sections, which may be nested, using multiple programming languages. The representation is read by an execution engine. The execution engine identifies the language of each code section, and a corresponding language specific processing unit is invoked to process the code section. The processing unit reads that section, identifying sub-sections specified in it&#39;s associated language and other sub-sections specified in unknown languages. It executes the sub-sections specified in its associated language with the intended semantics and in the appropriate order. When a sub-section specified in an unknown language is encountered, it delegates processing of that sub-section back to the execution engine, which repeats this process for the unknown sub-section. The execution result is returned back to the requesting language specific processing unit, which continues processing from where it left off.

RELATED APPLICATIONS

[0001] This non-provisional application is related to and claimspriority to provisional application No. 60/246,915, entitled “A DataProcessing Method Employing Cell Based Data Flow Description”, andapplication Ser. No. 60/246,916, entitled “A Multi-Language ExecutionMethod”, both filed on Nov. 10, 2000, and both specifications are herebyfully incorporated by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to the field of data processing.More specifically, the present invention relates to the employment ofmultiple programming languages interleaved within a single source filefor data processing operations.

[0004] 2. Background Information

[0005] Ever since the invention of the first computer, computerscientists have continuously tried to improve the productivity ofprogrammers, such that more applications can be developed using fewerresources to take advantage of the continuous advancements being made inthe art of computer and related technologies. First assembler languageswere developed to replace machine languages. Then, high level languages,such as FORTRAN, COBOL, PL/I and so forth, were developed to furtherimprove the productivity of programmers. Development of high levellanguages were followed by structured languages such as Pascal and C,and then object oriented programming languages such as C++. Tofacilitate development of the Internet and the World Wide Web, “new”languages such as the Hypertext Markup Language (HTML), Java,Javascript, Perl and CGI were developed.

[0006] Each programming language has its strength and weakness, and isoften suitable for certain applications over other applications. It isoften desirable to be able to employ instructions or statements ofdifferent programming languages to solve a problem or implement anapplication. However, few programming languages offer such support. Tothe extent that mixed language execution is supported, the approach isoften proprietary and not extendable to other programming languages.Thus, an improved mixed multi-language method, especially, one that isextensible to multiple programming languages is desired.

SUMMARY OF THE INVENTION

[0007] A data processing representation is expressed in the form of codesections, which may be nested, using multiple programming languages. Therepresentation is read by an execution engine. The execution engineidentifies the programming language of each code section, and acorresponding language specific processing unit is invoked to processthe code section. The language specific processing unit reads thatsection of the representation, identifying sub-sections specified init's associated language and other sub-sections specified in unknownlanguages. It executes the sub-sections specified in its associatedlanguage with the intended semantics and in the appropriate order. Whena sub-section specified in an unknown language is encountered, itdelegates processing of that sub-section back to the execution engine,which repeats this process for the unknown sub-section. The executionengine coordinates execution of the unknown sub-section, using one ormore appropriate language specific processing units, and returns theresult back to the requesting language specific processor, which willcontinue processing where it left off.

[0008] In one embodiment, a header section comprising directive and/ordeclarative statement is also supported for one or more of thelanguages. Upon recognition, the corresponding language specificprocessing unit imports data packages enumerated by the directivestatement, as directed, or instantiate methods/variables enumerated bythe declarative statement, for code sections of the language, asdeclared.

[0009] In one embodiment, the mixed usage of at least three programminglanguages is supported. The first language is an XML-like declarativelanguage, the second language is the Java language and the thirdlanguage is XML.

BRIEF DESCRIPTION OF DRAWINGS

[0010] The present invention will be described by way of exemplaryembodiments, but not limitations, illustrated in the accompanyingdrawings in which like references denote similar elements, and in which:

[0011]FIG. 1 illustrates an overview of the multi-language executionmethod of the present invention, in accordance with one embodiment;

[0012]FIG. 2a illustrates the relevant operational flow of the executionengine of FIG. 1, in accordance with one embodiment;

[0013]FIG. 2b illustrates the relevant operational flow of a languagespecific processing unit of FIG. 1, for processing a code section of thelanguage, in accordance with one embodiment;

[0014]FIG. 2c illustrates the relevant operational flow of a languagespecific processing unit of FIG. 1, for processing a header section ofthe language, in accordance with one embodiment;

[0015]FIG. 3 illustrates a computer system suitable for use to practicethe present invention, in accordance with one embodiment; and

[0016]FIG. 4 illustrates a multi-language data processing representationof FIG. 1, in further detail in accordance with one embodiment.

DETAILED DESCRIPTION OF THE INVENTION

[0017] The present invention includes a method for specifying dataprocessing operations using programming instructions of multipleprogramming languages, and for executing the multi-language dataprocessing representation.

[0018] In the following description, various aspects of the presentinvention will be described. However, the present invention may bepracticed with only some or all aspects of the present invention. Forpurposes of explanation, specific numbers, materials and configurationsare set forth in order to provide a thorough understanding of thepresent invention. However, the present invention may be practicedwithout the specific details. In other instances, well known featuresare omitted or simplified in order not to obscure the present invention.

[0019] Parts of the description will be presented in data processingterms, such as data, variables, methods, import, retrieve, return, andso forth, consistent with the manner commonly employed by those skilledin the art to convey the substance of their work to others skilled inthe art. As well understood by those skilled in the art, thesequantities take the form of electrical, magnetic, or optical signalscapable of being stored, transferred, combined, and otherwisemanipulated through mechanical, electrical and/or optical components ofa computer system. The term computer system includes general purpose aswell as special purpose data processing machines, systems, and the like,that are standalone, adjunct or embedded.

[0020] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0021] The phrase “in one embodiment” is used repeatedly. The phrasegenerally does not refer to the same embodiment, however, it may.

Overview

[0022] Referring now to FIG. 1, wherein a block diagram illustrating anoverview of the multi-language execution method of the presentinvention, in accordance with one embodiment. As illustrated, inaccordance with the present invention, a computing environment 102 isprovided with an execution engine 104, supplemented with a number oflanguage specific processing units 105, to facilitate execution of dataprocessing representations 106 expressed with programming instructionsof multiple programming languages. For the embodiment, computingenvironment 102 is also provided with function libraries 112 of theprogramming languages.

[0023] As illustrated, in accordance with the embodiment, amulti-language data processing representation 106 includes one or morelanguage namespace declarations 108 declaring language or languagesemployed, and one or more code sections 110 of the declared languages.In other embodiments, other non-namespace means may also be employed todeclare the languages involved. As will be described in more detailbelow, each code section 110 may include sub-sections written in one ormore other languages, that is code sections 110 of the differentprogramming languages may be interleaved. Each sub-section may in turnhave sub-sub-sections written in other languages, and so forth.

[0024] For the embodiment, data processing representation 106 may alsoinclude one or more language specific header sections 109 specifyingvarious “preliminary” matters for subsequent code sections 110 of thelanguage.

[0025] Execution engine 104 is endowed with logic to anticipate thatdata processing representations 106 may include code sections ofdifferent programming languages, and with the assistance of languagespecific processing units 105 be able to handle and facilitate executionof these code sections of different programming languages. Moreover,execution engine 104 is endowed with logic to anticipate and handleinter-mixing of code sections of the different programming languages.For the embodiment, upon encountering a code section/statement of alanguage, execution engine 104 invokes the corresponding languagespecific processing unit 105 to augment and provide the languagespecific processing required to process and facilitate execution of thecode section/statement.

[0026] Language specific processing units 105 are endowed with logic toidentify sub-sections written in unknown programming languages, anddelegate the processing of those sub-sections back to the executionengine 104. The execution engine 104, in turn, will pass the sub-sectionto an appropriate language specific processor and return the result tothe requesting language specific processing unit 105.

[0027] In general, except for the teachings of the present inventionincorporated in execution engine 104 and language specific processingunits 105, and the exploitation of these abilities by data processingrepresentations 106, data processing representations 106 are intended torepresent a broad range of data processing representation methodologiesknown in the art, and execution engine 104 is intended to represent abroad range of the corresponding engines in support of thesemethodologies. Further, computing environment 102 may be disposed in asingle or multi-processor system, or a collection of networked systems.In the case of networked systems, the systems may be networked locally,or across a number of private and/or public networks, including theInternet.

Mixed Language Data Processing Representation

[0028] Referring now to FIG. 4, wherein a block diagram illustrating amixed language data process representation 106 of FIG. 1 in furtherdetails, in accordance with one embodiment is shown. As illustrated, anddescribed earlier, for the embodiment, data processing representation106 includes one or more language namespace declarations 108 declaringone or more languages employed. In one embodiment, declarations 108 areexpressed in accordance with the following exemplary syntax:

[0029] <xs:xsheet xmins:xs=“xl://crossgain.net/lang/xsheet/”

[0030] xmins:java=“xl://crossgain.net/lang/java/”>

[0031] where “xmins” declares an XML namespace,

[0032] “xl://crossgain.net/lang/xsheet/” is a namespace using aspecially formed URI identifying one language that may be used in thissource. The execution engine uses this URI to locate an appropriatelanguage specific processing unit for sections written in this language.

[0033] “xl://crossgain.net/lang/java/” is a specially formed URIidentifying a second language that may be used in this source (anextension of the well known Java language in this example).

[0034] The execution engine uses this URI to locate an appropriatelanguage specific processing unit for sections written in this language.

[0035] “xs” is a namespace prefix used to identify sections of thesource written in the language identified by the associated namespace,“xl://crossgain.net/lang/xsheet/”

[0036] “java” is a namespace prefix used to identify sections of thesource written in the language identified by the associated namespace,“xl://crossgain.net/lang/java/”

[0037] Cell based data processing is described in U.S. patentapplication Ser. No. 09/741,219, entitled “Cell Based Data Processing”,filed on Dec. 19, 2000, which is a non-provisional application of theearlier enumerated U.S. provisional patent application No. 60/246,915.Readers are referred to the ′219 application for further details.

[0038] For ease of understanding, the remaining description of thepresent invention will be presented primarily in the context of theaforementioned “cell based” methodology/language and the extension ofthe Java language, the present invention is not so limited. The presentinvention may be practiced with any two or more currently known or to bedeveloped languages, as long as each of the languages is amenable to thedeclaration and reference techniques described in further details below.

[0039] Continuing to refer to FIG. 4, and as alluded earlier, for theembodiment, data processing representation 106 further includes a numberof language specific header sections 109 of selected supportedlanguages. For the embodiment, each header section 109 may include oneor more directive statements 402 directing one or more preliminary orpreparatory actions, such as importing of data packages, to beperformed, and one or more declarative statements 404 declaring one ormore processing methods or instance variables to be instantiated for useby subsequent code sections 110 of the language.

[0040] In one embodiment, a header section 109 may be declared inaccordance with the following exemplary syntax:

[0041] <xs:header>

[0042] <java:directive>

[0043] import org.w3c.dom.*;

[0044] </java:directive>

[0045] </xs:header>

[0046] The above example directive directs the import of W3C'sdefinition of the document object model for use by subsequent Java codesections.

[0047] Still referring to FIG. 4. as described earlier, data processingsection 106 further includes language specific as well as mixed languagecode sections 110 a and 110 b. For the embodiment, statements of asecond language may be intermixed among statement of a first language,employing one or more sets of delimiting language tag pairs 442 a-442 band 444 a-444 b as shown.

[0048] For example, from within Java, retrieval and return of a XMLvalue associated with an xsheet variable as an object may be specifiedas follows:

[0049] myvar=<xs:valueof select=“$countdown”/>;

[0050] The XML value identified by the current value of the xsheetvariable “countdown” is retrieved and returned as an object for use in aJava expression. In contrast, consider the following example where thexsheet code is used as a statement instead of part of an expression:

[0051] for (int j=0; j<10; j++){

[0052] <xs:value-of select=“$countdown”/>;

[0053] }

[0054] In this case, the Java specific processing unit asks theexecution engine to evaluate the xsheet code 10 times. Each time, theresults returned by the execution engine are appended to the output ofthe delimited code section.

[0055] As illustrated, for the embodiment, statements within thedelimited code section may also invoke one or more local, remote orbuilt-in library functions of the language. In one embodiment, thebuilt-in library functions supported for the example Java languageinclude

[0056] a) an emit( ) function for converting Java Objects to XML formand appending the resulting value of the function to output of thedelimited code section;

[0057] b) a push(element) function to append a copy of a specifiedelement to the output of the delimited code section and reposition theinsertion point for the delimited code section inside the element suchthat subsequent output of the delimited code section is appended aschildren of this element;

[0058] c) a popo function to “back up” the current insertion point forthe delimited code section such that subsequent output of the delimitedcode section is appended as children of the parent of the elementcontaining the current insertion point; and

[0059] d) a getDocumentofunction to retrieve and return a W3C documentobject for the delimited code section, for use as a space in which newnodes may be created.

Execution Engine

[0060]FIG. 2a illustrates the operational flow of the relevant aspectsof execution engine 104 in accordance with one embodiment; morespecifically, the operational flow of execution engine 104 forprocessing data processing representation 106. The embodiment, assumes,execution engine 104, like other conventional execution engines of priorart data processing representations, upon invocation, would parse andinterpret the statements of data processing representation 106.

[0061] As illustrated, for the embodiment, execution engine 104 firstlocates and processes the declaration statements declaring theprogramming languages employed in expressing the data processingrepresentation being processed, block 202. Next, execution engine 104locates the start of the “next” code section, identifies the languageassociated with code section, and as described earlier, invoke thecorresponding language specific processing unit to process the codesection, block 204.

[0062] Upon return of execution control, execution engine 104 determineswhether end of execution has been reached, block 208, if not, executionengine 104 continues the process at block 204 again, i.e. determiningthe language of the “next” code section, and invoke the correspondinglanguage specific processing unit to process the “next” code section.

[0063] The process continues until eventual execution control isreturned where end of execution has been reached.

Language Specific Processing Unit

[0064]FIG. 2b illustrates the operational flow of the relevant aspectsof a language specific processing unit 105 for processing a non-headercode section of the language, in accordance with one embodiment. Asillustrated, for the embodiment, the processing unit first locates the“next” statement to be executed, block 222. Upon locating the “next”statement, the processing unit determines if the it is a statement ofthe language or of an unknown language (e.g. the start of a language tagof a sub-section of another language), block 224. If it is a statementof an unknown language, as described earlier, the processing unitinvokes the execution engine recursively allowing it to evaluate theforeign language section with the other language specific processingunits at its disposal.

[0065] If it is a statement of the language the language processor thestatement elements accordingly, starting with a next statement element,block 226. Again, the processing unit determines if the statementelement is an element recognized within the language or it's an elementof an unknown language (e.g. the start of a language tag of asub-section of another language), block 228. If it is an element of anunknown language, as described earlier, the processing unit invokes theexecution engine recursively.

[0066] If it is an element recognized by the language, the processingunit processes the element accordingly, block 230. As described earlier,in one embodiment, the language element may be an invocation invoking alibrary function of the language. If so, the library function is invokedand executed accordingly. The library function may be local or remote,and invoked in a namespace based approach. Invocation of function in anamespace based approach is the subject matter of Patent CooperationTreaty (PCT) patent application number <to be insert>, entitled“Namespace Based Function Invocation”, contemporaneously filed, andpublished on <insert date>, which claims priority to the earlierenumerated U.S. provisional patent application No. 60/246,916. Readersare referred to the ′xxx application for further details.

[0067] Still referring to FIG. 2b, thereafter, at block 232, theprocessing unit determines if end of statement has been reached. If not,it continues operation at block 226 again. If end of statement has beenreached, the processing unit determines if there are additionalstatements to be processed, block 234. If so, it continues operation atblock 222 again. Otherwise, it returns execution control back to theexecution engine.

[0068]FIG. 2c illustrates the operational flow of the relevant aspectsof a language specific processing unit 105 for processing a headersection of the language, in accordance with one embodiment. Morespecifically, the embodiment is the embodiment in support of the Javalanguage, incorporating the earlier described features. Other languagespecific processing units 105 in support of other languages may belikewise implemented with or without modifications and alterations.

[0069] As illustrated, upon invocation, the exemplary processing unit105 determines if it is processing a directive or a declarativestatement, block 232. If it is a directive statement being processed,the exemplary processing unit 105 performs the specified operation, e.g.an import operation importing enumerated data packages, as directed,block 234. On the other hand, if it is a declarative statement beingprocessed, the exemplary processing unit 105 processes the declaration,e.g. instantiating a declared processing method or an instance variable,as declared, block 236.

[0070] The process continues as earlier described, block 238, until allstatements of the header section are processed.

Example Computer System

[0071]FIG. 3 illustrates a computer system suitable for use to practicethe present invention, in accordance with one embodiment. As shown,computer system 300 includes one or more processors 302 and systemmemory 304. Additionally, computer system 300 includes mass storagedevices 306 (such as diskette, hard drive, CDROM and so forth),input/output devices 308 (such as keyboard, cursor control and so forth)and communication interfaces 310 (such as network interface cards,modems and so forth). The elements are coupled to each other via systembus 312, which represents one or more buses. In the case of multiplebuses, they are bridged by one or more bus bridges (not shown). Each ofthese elements performs its conventional functions known in the art. Inparticular, system memory 304 and mass storage 306 are employed to storea working copy and a permanent copy of the programming instructionsimplementing the execution engine and the language specific processingunits. The permanent copy of the programming instructions may be loadedinto mass storage 306 in the factory, or in the field, through adistribution medium (not shown) or through communication interface 310(from a distribution server (not shown). The constitution of theseelements 302-312 are known, and accordingly will not be furtherdescribed.

Conclusion and Epilogue

[0072] Thus, it can be seen from the above descriptions, a novel methodand apparatus for processing and facilitating execution of dataprocessing representations encoded using multiple programming languageshas been described. While the present invention has been described interms of the above illustrated embodiments, those skilled in the artwill recognize that the invention is not limited to the embodimentsdescribed. The present invention can be practiced with modification andalteration within the spirit and scope of the appended claims. Thedescription is thus to be regarded as illustrative instead ofrestrictive on the present invention.

What is claimed is: 1 A method of computing comprising: reading a dataprocessing representation having code sections with code statements ofat least a first and a second programming language; recognizing a firstcode section with at least code statements of a first programminglanguage; invoking a first code statement processing unit of the firstprogramming language to process the first code section; recognizing asecond code section with at least code statements of a secondprogramming language; invoking a second code statement processing unitof the second programming language to process the second code section.2. The method of claim 1, wherein the first and second code sections arenon-overlapping code sections.
 3. The method of claim 1, wherein saidsecond code section is embedded within said first code section.
 4. Themethod of claim 1, wherein said first language is a directive language,and said second language is a selected one of XML and Java.
 5. Themethod of claim 1, wherein said first language is Java, and said secondlanguage is XML.
 6. The method of claim 1, wherein the method furthercomprises recognizing a third code section with at least code statementsof a third programming language; invoking a third code statementprocessing unit of the third programming language to process the thirdcode section.
 7. The method of claim 6, wherein said third code sectionis embedded within said second code section, and said second codesection is embedded within said first code section.
 8. The method ofclaim 6, wherein said first language is a directive language, saidsecond language is Java and said third language is XML.
 9. The method ofclaim 1, wherein the method further comprises recognizing an invocationof a library function within at least a selected one of said first andsecond code sections; invoking the library function, and outputting theresult of the invocation.
 10. The method of claim 9, wherein the libraryfunction is a selected one of an emit function for outputting executionresults, a pop function for returning an element, and a push functionfor backing up an insertion point.
 11. The method of claim 1, whereinthe method further comprises recognizing a header section of a selectedone of the first and the second programming language; recognizing adirective statement within the header section, enumerating one or moredata packages; and importing the enumerated one or more data packagesfor use within code sections with at least statements of the selectedfirst and second programming language.
 12. The method of claim 1,wherein the method further comprises recognizing a header section of aselected one of the first and the second programming language;recognizing a declare statement within the header section, enumeratingone or more processing methods; and instantiating the enumerated one ormore processing methods for use within code sections with at leaststatements of the selected first and second programming language. 13.The method of claim 1, wherein the method further comprises recognizinga header section of a selected one of the first and the secondprogramming language; recognizing a declare statement within the headersection, enumerating one or more instance variables; and instantiatingthe enumerated one or more instance variables for use within codesections with at least statements of the selected first and secondprogramming language.
 14. A method of computing comprising: reading adata processing representation having code sections with code statementsof at least a first and a second programming language; recognizing aheader section of a selected one of the first and the second programminglanguage; recognizing a directive statement within the header section,enumerating one or more data packages; and importing the enumerated oneor more data packages for use by code sections within code sections withat least statements of the selected first and second programminglanguage.
 15. The method of claim 14, wherein the method furthercomprises recognizing a declare statement within the header section,enumerating one or more processing methods; and instantiating theenumerated one or more processing methods for use within code sectionswith at least statements of the selected first and second programminglanguage.
 16. The method of claim 14, wherein the method furthercomprises recognizing a declare statement within the header section,enumerating one or more instance variables; and instantiating theenumerated one or more instance variables for use within code sectionswith at least statements of the selected first and second programminglanguage.
 17. A method of computing comprising: reading a dataprocessing representation having code sections with code statements ofat least a first and a second programming language; recognizing a headersection of a selected one of the first and the second programminglanguage; recognizing a first declare statement within the headersection, enumerating one or more processing methods; and instantiatingthe enumerated one or more processing methods for use within codesections with at least statements of the selected first and secondprogramming language.
 18. The method of claim 17, wherein the methodfurther comprises recognizing a second declare statement within theheader section, enumerating one or more instance variables; andinstantiating the enumerated one or more instance variables for usewithin code sections with at least statements of the selected first andsecond programming language.
 19. A method of computing comprising:reading a data processing representation having code sections with codestatements of at least a first and a second programming language;recognizing a header section of a selected one of the first and thesecond programming language; recognizing a declare statement within theheader section, enumerating one or more instance variables; andinstantiating the enumerated one or more instance variables for usewithin code sections with at least statements of the selected first andsecond programming language.
 20. An apparatus comprising: at least onestorage unit having stored thereon programming instructions designed toenable the apparatus to read a data processing representation havingcode sections with code statements of at least a first and a secondprogramming language, recognize a first code section with codestatements of at least the first programming language, invoking a firstcode statement processing unit of the first programming language toprocess the first code section, recognize a second code section withcode statements of at least the second programming language, invoking asecond code statement processing unit of the second programming languageto process the second code section; and at least one processor coupledto said at least one storage unit to execute said programminginstructions.
 21. The apparatus of claim 20, wherein the first andsecond code sections are non-overlapping code sections.
 22. Theapparatus of claim 20, wherein said second code section is embeddedwithin said first code section.
 23. The apparatus of claim 20, whereinsaid first language is a directive language, and said second language isa selected one of XML and Java.
 24. The apparatus of claim 20, whereinsaid first language is Java, and said second language is XML.
 25. Theapparatus of claim 20, wherein the programming instructions furtherenable the apparatus to recognize a third code section with at leastcode statements of a third programming language; invoke a third codestatement processing unit of the third programming language to processthe third code section.
 26. The apparatus of claim 25, wherein saidthird code section is embedded within said second code section, and saidsecond code section is embedded within said first code section.
 27. Theapparatus of claim 25, wherein said first language is a directivelanguage, said second language is Java and said third language is XML.28. The apparatus of claim 20, wherein said programming instructionsfurther enable the apparatus to recognize an invocation of a libraryfunction of a selected one of the first and the second programminglanguage within the first code section, invoke the library function, andoutput the result of the invocation.
 29. The apparatus of claim 28,wherein the library function is a selected one of an emit function foroutputting execution results, a pop function for returning an element,and a push function for backing up an insertion point.
 30. The apparatusof claim 20, wherein the said programming instructions are furtherdesigned to enable the apparatus to recognize a header section of aselected one of the first and the second programming language; recognizea directive statement within the header section, enumerating one or moredata packages; and import the enumerated one or more data packages foruse by code sections with at least code statements of the selected oneof the first and the second programming language.
 31. The apparatus ofclaim 20, wherein said programming instructions are further designed toenable the apparatus to recognize a header section of a selected one ofthe first and the second programming language; recognize a declarestatement within the header section, enumerating one or more processingmethods; and instantiate the enumerated one or more processing methodsfor use within code sections with at least code statements of theselected one of the first and the second programming language.
 32. Theapparatus of claim 20, wherein said programming instructions are furtherdesigned to enable the apparatus to recognize a header section of aselected one of the first and the second programming language; recognizea declare statement within the header section, enumerating one or moreinstance variables; and instantiate the enumerated one or more instancevariables for use code sections with at least code statements of theselected one of the first and the second programming language.
 33. Anapparatus comprising: at least one storage medium having stored thereina plurality of programming instructions designed to enable the apparatusto read a data processing representation having code sections withprogramming language statements of at least a first and a secondprogramming language, recognize a header section of a selected one ofthe first and the second programming language; recognizing a directivestatement within the header section, enumerating one or more datapackages, and import the enumerated one or more data packages for usecode sections with at least code statements of the selected one of thefirst and the second programming language; and at least one processorcoupled to the storage medium to execute the programming instructions.34. The apparatus of claim 33, wherein said programming instructions arefurther designed to enable the apparatus to recognize a declarestatement within the header section, enumerating one or more processingmethods, and instantiate the enumerated one or more processing methodsfor use within code sections with at least code statements of theselected one of the first and the second programming language.
 35. Theapparatus of claim 33, wherein said programming instructions are furtherdesigned to enable the apparatus to recognize a declare statement withinthe header section, enumerating one or more instance variables, andinstantiate the enumerated one or more instance variables for use withincode sections with at least code statements of the selected one of thefirst and the second programming language.
 36. An apparatus comprising:at least one storage medium having stored therein a plurality ofprogramming instructions designed to enable the apparatus to read a dataprocessing representation having code sections with code statements ofat least a first and a second programming language, recognize a headersection of a selected one of the first and the second programminglanguage, recognize a first declare statement within the header section,enumerating one or more processing methods, and instantiate theenumerated one or more processing methods for use within code sectionswith at least code statements of the selected one of the first and thesecond programming language; and at least one processor coupled to thestorage medium to execute the programming instructions.
 37. Theapparatus of claim 36, wherein said programming instructions are furtherdesigned to enable the apparatus to recognize a second declare statementwithin the header section, enumerating one or more instance variables,and instantiate the enumerated one or more instance variables for usewithin code sections with at least code statements of the selected oneof the first and the second programming language.
 38. An apparatuscomprising: at least one storage medium having stored therein aplurality of programming instructions designed to enable the apparatusto read a data processing representation having code sections with codestatements of at least a first and a second programming language,recognize a header section of a selected one of the first and the secondprogramming language, recognize a declare statement within the headersection, enumerating one or more instance variables, instantiate theenumerated one or more instance variables for use within code sectionswith at least code statements of the selected one of the first and thesecond programming language; and at least one processor coupled to thestorage medium to execute the programming instructions.